<?php

/**
 * parentesco actions.
 *
 * @package    cronos-doctrine
 * @subpackage parentesco
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class parentescoActions extends sfActions
{

   ///////////////////////////////*Parentesco*///////////////////////////////////////

  //Muestra todos los Parentesco
  public function executeIndex(sfWebRequest $request)
  {
    //Mostrar todas los Parentesco correspondiente al Usuario
     if ( ($request->isXmlHttpRequest()) && ($request->getParameter('idUser'))){
         $parentesco = new Parentesco();
         $this->parentescos = $parentesco->getParentesco($request->getParameter('idUser'));
         $this->idUser =  $request->getParameter('idUser');
         $this->parent =  $request->getParameter('parent');
         $this->delete =  $request->getParameter('delete');
     }
  }

  //Muesta el detalle de los Parentesco Seleccionado
  public function executeShow(sfWebRequest $request)
  {
    $this->parentesco = Doctrine_Core::getTable('Parentesco')->find(array($request->getParameter('id')));
    $this->forward404Unless($this->parentesco);
  }

  //Formulario para la creacion de un Nuevo Parentesco
  public function executeNew(sfWebRequest $request)
  {
    //Recibe la variable IdUser para poder asociarlo al usuario
    if ( ($request->isXmlHttpRequest()) && ($request->getParameter('idUser'))){
        //Busqueda del usuario por el Id
        $usuario = Doctrine_Core::getTable('Usuario')->find(array($request->getParameter('idUser')));
        //Armado del Objeto Parentesco
        $parentesco = new Parentesco();
        $parentesco->setUsuario($usuario);
        //Arma Formulario Parentesco para el usuario en cuestion
        $this->form = new ParentescoForm($parentesco);  
        $this->form->setWidget('usuario_id', new sfWidgetFormInputHidden(array(),array('value' => $request->getParameter('idUser'))));
        //Reasigna la variable usuario para su actualizacion luego Jquery
         $this->idUser = $request->getParameter('idUser');
         $this->parent =  $request->getParameter('parent');
    }    
  }

  //Accion para crear el Nuevo Parentesco
  public function executeCreate(sfWebRequest $request)
  {
    //Redirecciona a la pagina de no encontrada
    $this->forward404Unless($request->isMethod(sfRequest::POST));
    //Crea un Nuevo Formulario para Parentesco
    $this->form = new ParentescoForm();
    //Captura Variable Id Usuario
    $this->idUser =  $request->getParameter('idUser');
    $this->parent =  $request->getParameter('parent');
    //Reenvio Variable para el Procesado del Formulario
    $this->processForm($request, $this->form, $this->idUser,$this->parent);
    $this->setTemplate('new');
  }

  //Formulario para la Edicion del Parentesco
  public function executeEdit(sfWebRequest $request)
  {
    //Redirecciona a la pagina de no encontradasi no encuentra el Id del Parentesco
    $this->forward404Unless($parentesco = Doctrine_Core::getTable('Parentesco')->find(array($request->getParameter('id'))), sprintf('Object parentesco does not exist (%s).', $request->getParameter('id')));
    //Captura Variable Id Usuario
    $this->idUser =  $request->getParameter('idUser');
    $this->parent =  $request->getParameter('parent');
    //Arma Formulario Parentesco para el usuario en cuestion
    $this->form = new ParentescoForm($parentesco);
    $this->form->setWidget('usuario_id', new sfWidgetFormInputHidden(array(),array('value' => $request->getParameter('idUser'))));
  }

   //Accion para edicion del Parentesco
  public function executeUpdate(sfWebRequest $request)
  {
      //Redirecciona a la pagina de no encontradasi no encuentra el Id del Parentesco
    $this->forward404Unless($request->isMethod(sfRequest::POST) || $request->isMethod(sfRequest::PUT));
    $this->forward404Unless($parentesco = Doctrine_Core::getTable('Parentesco')->find(array($request->getParameter('id'))), sprintf('Object parentesco does not exist (%s).', $request->getParameter('id')));
    //Captura Variable Id Usuario
    $this->idUser =  $request->getParameter('idUser');
    $this->parent =  $request->getParameter('parent');
     //Crea un Nuevo Formulario para Parentesco en cuestion
    $this->form = new ParentescoForm($parentesco);
   //Reenvio Variable para el Procesado del Formulario
    $this->processForm($request, $this->form, $this->idUser,$this->parent);
    $this->setTemplate('edit');
  }

  //Funcion para Borrar el Parentesco
  public function executeDelete(sfWebRequest $request)
  {
    //Verifica la proteccion del formulario
    //$request->checkCSRFProtection();
    $this->idUser =  $request->getParameter('idUser');
    $this->parent =  $request->getParameter('parent');
    $this->delete =  true;
    //Redirecciona a la pagina de no encontradasi no encuentra el Id del Parentesco
    $this->forward404Unless($parentesco = Doctrine_Core::getTable('Parentesco')->find(array($request->getParameter('id'))), sprintf('Object parentesco does not exist (%s).', $request->getParameter('id')));
    //Elimina el Parentesco y redirecciona al Index del Parentesco
    $parentesco->delete();
    $this->redirect('parentesco/index?idUser='.$this->idUser."&parent=".$this->parent."&delete=".$this->delete);
  }

  //Funcion para el procesamiento o guardado del Formulario y Objeto de Parentesco
  protected function processForm(sfWebRequest $request, sfForm $form, $idUser, $parent)
  {
    $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
    if ($form->isValid())
    {
      $parentesco = $form->save();

      $this->redirect('parentesco/edit?id='.$parentesco->getId()."&idUser=".$idUser."&parent=".$parent);
    }
  }
}
